package com.nan;

import com.nan.book.BookList;
import com.nan.user.AdminUser;
import com.nan.user.NormalUser;
import com.nan.user.User;

import java.util.Scanner;

public class Main {//类
    public static User login(){//方法
        System.out.println("请输入你的姓名：");
        Scanner scanner=new Scanner(System.in);
        String name=scanner.next();
        System.out.println("请输入你的身份：1.管理员 0.普通用户: ");
        int m=scanner.nextInt();
        if(m==1){
            return new AdminUser(name);//这里涉及到了向上转型，因为return返回类型管理员和
            // 普通人员是两个类，但他们都继承了User这个父类
        }else {
            return new NormalUser(name);
        }
    }

    public static void main(String[] args) {
        BookList bookList = new BookList();//准备了书籍
        User user = login();//直接引用login这个方法
        while (true) {
            int choice = user.menu();//此时user引用的是AdminUser还是 NormalUser并不关心，
            // 但是user可以调用menu菜单
            //为动态绑定
            //此时的choice代表你的选择，作为接收数据
            user.doOperation(choice, bookList);
        }
    }
}
